System LSIs (large scale integrated circuits) having a structure of integrating a large number of functional features on a single chip have been used in appliances of various types such as home use portable appliances in recent years. A system LSI is equipped internally or externally with a nonvolatile memory storing a boot program and other various processing programs along with data. Such a nonvolatile memory is more often than not a flash memory that allows the data it stores to be electrically rewritten.
NOR type flash memories are generally being used to store a boot program. However, there has recently been arising a demand for NAND type flash memories that are less expensive in terms of the cost per bit.
Known boot systems utilizing a NAND type flash memory include those comprising a CPU (central processing unit) core, a system memory, a NAND type flash memory and an interface for data communications between each of the memories and the CPU core and adapted to operate for system booting by temporarily storing a boot code from the NAND type flash memory in the RAM (random access memory) by way of the interface under the control of the CPU core and reading out the boot code from the RAM in order to improve the performance of the system. Known boot systems of the sorts are disclosed in Japanese Patent Application Laid-Open Publication No. 2003-271391.
Meanwhile, in a flash memory, the operation of writing or reading data is conducted on a block by block basis. However, it has been known that bad blocks appear randomly in the manufacturing process in NAND type flash memories. On the other hand, it is necessary for booting using a NAND type flash memory to be ensured that the block storing the boot program is not faulty and the program is stored properly. However, it has been a problem to ensure that a NAND type flash memory has not any specific bad block because the cost of the test that needs to be conducted for that purpose before shipment is enormous.